/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package umis2.controladorcentral;

import java.util.Comparator;
import java.util.TreeSet;
import umis2.nivel.Comparador;
import umis2.nivel.Nivel;
import umis2.nivel.NivelBuilderDirector;
import umis2.nivel.NivelUnoBuilder;
import umis2.nivel.Plataforma;

/**
 *
 * @author Jonatan Elias
 */
public class Acotador {

    int inicio;
    int ancho;
    int margen;
    Nivel nivel;

    public Acotador(int ancho, int margen){
        this.ancho=ancho;
        this.margen=margen;
    }

    public static Acotador getInstance() {
        return AcotadorHolder.INSTANCE;
    }

    private static class AcotadorHolder {
        private static final Acotador INSTANCE = new Acotador(13,1);
    }

    public TreeSet<Plataforma> acotarNivel(){
        if(nivel==null){
            NivelBuilderDirector director = new NivelBuilderDirector();
            NivelUnoBuilder nivelUnoBuilder = new NivelUnoBuilder();
            director.setNivelBuilder(nivelUnoBuilder);
            director.constructNivel();
            nivel = director.getNivel();
        }

        TreeSet<Plataforma> plataformas = new TreeSet<Plataforma>(new Comparador());
        for(Plataforma p : nivel.getPlataformas()){
            if(p.getPosicion().getX()>=(inicio-margen)){
                if(p.getPosicion().getX()>(inicio+ancho+margen))
                    break;
                plataformas.add(p);
            }
        }
        return plataformas;

    }

    public int getAncho() {
        return ancho;
    }

    public void setAncho(int ancho) {
        this.ancho = ancho;
    }

    public int getInicio() {
        return inicio;
    }

    public void setInicio(int inicio) {
        this.inicio = inicio;
    }

    public int getMargen() {
        return margen;
    }

    public void setMargen(int margen) {
        this.margen = margen;
    }

}
